package com.tiankong.product.entity;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.tiankong.product.dto.MemberPrice;
import lombok.Data;
import lombok.experimental.Accessors;
import net.youdi.common.em.YesOrNo;
import net.youdi.common.util.ObjectUtil;

/**
 * <p>
 * sku信息
 * </p>
 *
 * @author scl
 * @since 2021-03-22
 */
@Data
@Accessors(chain = true)
@TableName("t_sku_info")
public class SkuInfo {

    /**
     * skuId
     */
    @TableId(value = "sku_id", type = IdType.AUTO)
    private Long skuId;

    /**
     * spuId
     */
    private Long spuId;

    /**
     * sku名称
     */
    private String skuName;

    /**
     * sku介绍描述
     */
    private String skuDesc;

    /**
     * 所属分类id
     */
    private Long catalogId;

    /**
     * 品牌id
     */
    private Long brandId;


    /**
     * 标题
     */
    private String skuTitle;

    /**
     * 副标题
     */
    private String skuSubtitle;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 销量
     */
    private Long saleCount;


    @TableField(exist = false)
    private List<SkuSaleAttrValue> attrs;

    /**
     * 图集
     */
    @TableField(exist = false)
    private List images;

    /**
     * 折扣信息
     */
    @TableField(exist = false)
    private SkuCoupon coupon;

    /**
     * 默认图片
     */
    @TableField(exist = false)
    private String skuDefaultImg;

    /**
     * 会员价格
     */
    @TableField(exist = false)
    private List<MemberPrice> memberPrice;

   /**
     * 默认图片
     */
    public Object getSkuDefaultImg(){
        if (this.images != null){
            for (Object image : images) {
                Map map = (Map) image;
                if (ObjectUtil.equalsAsStr(YesOrNo.YES,map.get("defaultImg"))){
                    return map.get("imgUrl");
                }
            }
        }
        return null;
    }
}
